option(DISABLE_PLUGINS "Disable building of OBS plugins" OFF)
if(DISABLE_PLUGINS)
	message(STATUS "DISABLE_PLUGINS is set; building of plugins is disabled.")
	return()
endif()

if(WIN32)
	option(BUILD_CA_ENCODER "Build CoreAudio encoder module" ON)
	if (BUILD_CA_ENCODER)
		add_subdirectory(coreaudio-encoder)
	endif()
	add_subdirectory(win-wasapi)
	add_subdirectory(win-dshow)
	add_subdirectory(win-capture)
	add_subdirectory(decklink/win)
	add_subdirectory(win-mf)
	add_subdirectory(obs-qsv11)
	add_subdirectory(vlc-video)
	if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/enc-amf/CMakeLists.txt")
		add_subdirectory(enc-amf)
	else()
		message(STATUS "enc-amf submodule not found!  Please fetch submodules.  enc-amf plugin disabled.")
	endif()
	if (MSVC)
		add_subdirectory(win-ivcam)
	endif()
elseif(APPLE)
	add_subdirectory(coreaudio-encoder)
	add_subdirectory(mac-avcapture)
	add_subdirectory(mac-capture)
	add_subdirectory(mac-vth264)
	add_subdirectory(mac-syphon)
	option(BUILD_VIRTUALCAM "Build Virtualcam" ON)
	if(BUILD_VIRTUALCAM)
		add_subdirectory(mac-virtualcam)
	endif()
	add_subdirectory(decklink/mac)
	add_subdirectory(vlc-video)
	add_subdirectory(linux-jack)
elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
	add_subdirectory(linux-capture)
	add_subdirectory(linux-pulseaudio)
	add_subdirectory(linux-v4l2)
	add_subdirectory(linux-jack)
	add_subdirectory(linux-alsa)
	add_subdirectory(decklink/linux)
	add_subdirectory(vlc-video)
	add_subdirectory(sndio)
elseif("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD")
	add_subdirectory(linux-capture)
	add_subdirectory(linux-pulseaudio)
	add_subdirectory(linux-v4l2)
	add_subdirectory(linux-jack)
	add_subdirectory(linux-alsa)
	add_subdirectory(vlc-video)
	add_subdirectory(oss-audio)
	add_subdirectory(sndio)
elseif("${CMAKE_SYSTEM_NAME}" MATCHES "OpenBSD")
	add_subdirectory(linux-capture)
	add_subdirectory(sndio)
endif()

option(BUILD_BROWSER "Build browser plugin" ON)
if (BUILD_BROWSER)
	if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt")
		add_subdirectory(obs-browser)
		set(BROWSER_AVAILABLE_INTERNAL ON CACHE BOOL "Internal global cmake variable" FORCE)
	else()
		message(FATAL_ERROR "obs-browser submodule not found! Please fetch submodules or set BUILD_BROWSER=OFF.")
	endif()
else()
	set(BROWSER_AVAILABLE_INTERNAL OFF CACHE BOOL "Internal global cmake variable" FORCE)
endif()

option(BUILD_VST "Build VST plugin" ON)
if(BUILD_VST)
	if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-vst/CMakeLists.txt")
		add_subdirectory(obs-vst)
	else()
		message(FATAL_ERROR "obs-vst submodule not found! Please fetch submodules or set BUILD_VST=OFF.")
	endif()
endif()

add_subdirectory(image-source)
add_subdirectory(obs-x264)
add_subdirectory(obs-libfdk)
add_subdirectory(obs-ffmpeg)
add_subdirectory(obs-outputs)
add_subdirectory(obs-filters)
add_subdirectory(obs-transitions)
add_subdirectory(obs-text)
add_subdirectory(rtmp-services)
add_subdirectory(text-freetype2)
